jsonresume / resume-schema

JSON-Schema is used here to define and validate our proposed resume json
http://jsonresume.org
MIT License
2.12k stars 277 forks source link

geotag location in work #12

Closed priyolahiri closed 3 years ago

priyolahiri commented 10 years ago

every work should have an optional lat, lng. this would give me a map of areas worked, and also ties in experience duration with locations which can help companies offer jobs by location relevance and comfort factor with the location.

priyolahiri commented 10 years ago

example:

work: [{
company: string, // e.g. Facebook
position: string, // e.g. Software Engineer
website: string, // e.g. http://facebook.com
startDate: string, // resume.json uses the ISO 8601 date standard e.g. 2014-06-29
endDate: string, // e.g. 2012-06-29
summary: string, // Give an overview of your responsibilities at the company
highlights: [ // Specify multiple accomplishments
string // e.g. Increased profits by 20% from 2011-2012 through viral advertising
],
"location": {"lat":45.243434, "lng": 23.43243242}
}]
rexxars commented 10 years ago

I'd also like to include lat/lng in a persons current location.

thomasdavis commented 10 years ago

Interesting, will make it much easier for analysis

bennettgoble commented 10 years ago

Geo-coordinates are very important for understanding resumes, especially when it comes to machine comprehension (Where is this individual based? Where have they worked? Where do they desire to work? etc.) I'd love to see this feature. :+1:

...themes could also incorporate maps, etc.

DonDebonair commented 10 years ago

:+1: to geotagging

james-gibson commented 10 years ago

I would suggest rather then creating a generic object {lat,lng} for a location, that the location be a valid geoJSON object. This will simplify the mapping of this data by falling back on an existing spec.

More information can be found here: http://geojson.org/geojson-spec.html

vote539 commented 10 years ago

+1 for geoJSON. At the very least it should be an acceptable format for template parsers when they see a "location" field.

ocram commented 10 years ago

So either

"location": {"lat": 45.243434, "lng": 23.43243242 }

or

"location": { "type": "Point", "coordinates": [45.243434, 23.43243242] }

?

priyolahiri commented 10 years ago

I would say "location": {"lat": 45.243434, "lng": 23.43243242 } instead of geoJson as very few "enterprises" have gotten to working with geoJSON as a tech, but everybody has used google apis and thus can directly take the lat, lng and pass it in to get an inference of location. Also, the other reason that I would say that geoJSON will not be much use because most of geoJSON's variety of geometry like bounding boxes, straight lines, etc. would never be used and this would always come in the form of lat and lng point. So why add the overhead of geoJSON? Someone who parses this json can also get a geoJSON point object from the lat and lng if they work with geoJSON. Also why add the overhead of the extra bytes, when half the specs of geoJSON would never be used in this case? -1 for geoJSON.

wdoekes commented 10 years ago

I wouldn't mind an optional "lat" and "lng" in the location block. But the main info should be human readable as far as I'm concerned. Especially since we're reusing the same location keyword.

For example, patching bio.location it would look like:

"location": {
  "city": "San Francisco",
  "countryCode": "US",
  "state": "California",
  "lat": 123.456,
  "lng": 123.456,
},

As for adding the location to the work object. Is that the only place we'd like that added to? Or perhaps in education too? And possibly in a bunch more of the newly suggested objects (e.g. volunteerWork)?

osg commented 10 years ago

Acceptance criteria for closing this issue is that this is well documented. Some users will likely drop off here.

Users will need to know, "How can I find out the geolocation of my company (or university)?"

DonDebonair commented 10 years ago

Hhmmmm after thinking some more on this, I wonder if we're actually doing the work of the tool in the jsonresume ecosystem by providing lat,long values. If a user chooses to specify a city or even a more specific address, it's up to the template system/cli/... to query GMaps for instance, to get the geolocation. Technically, geo-information is secondary information in the context of a resume. It can be "calculated" from the location information.

rexxars commented 10 years ago

As long as the field is not mandatory, I don't see a problem with including it. It provides tremendous value for any non-human trying to make sense of the resume, or for generators who want to include a map or similar.

osg commented 10 years ago

+1, @DandyDev

rexxars commented 10 years ago

Geocoding is not trivial. In Norway, we don't have "states", as the spec allows. We have "fylker" (counties) and "kommuner" (municipalities). Some of these municipalities even have the same names. Lots of towns have the same names. Trying to geocode "Dale, Norway" or "Vik, Norway" is just not sufficient to find the right one.

Specifying a lat/lng does however allow the reverse to happen; using reverse geocoding, a resume generator/presenter would be able to display "Dale, Fjaler, Sogn og Fjordane, Norway", or simply "Dale, Norway" with a link to open a map on the right spot.

DonDebonair commented 10 years ago

And if I may ask, how do you come by those geo coordinates? Surely whatever tool is parsing the jsonresume can use the same data you use, to get proper coordinates. Your example just tells me that you did not provide enough information for GMaps to get the right coordinates.

rexxars commented 10 years ago

Since this is my own resume, knowing where to look for Dale, Norway on a map is not a problem. For a parser, that's much harder.

By all means, if we can provide additional fields to narrow down the location (so geocoders can have an easier time) - fine, but while "county" and "municipality" might make sense for Norway, something else might make sense for Uzbekistan or India. Instead of defining the fields, perhaps it would be better to provide an array of different levels: ["Dale", "Fjaler", "Sogn og Fjordane", "Norway"] - then again, this would be mostly useful for a geocoder, presenting it to a human without knowing what they represent is slightly harder.

I still don't see why a lat/lng combination shouldn't be an optional field.

DonDebonair commented 10 years ago

But you don't live in "Dale, Norway", but more specifically in a city/municipality within "Dale, Norway". So if you put "Norway" in country, "Dale" in region and "Fjaler"/"Sogn og Fjordane" in city, isn't that specific enough for GMaps to find the right city?

edit: When I put "Dale, Norway, Fjaler" in GMaps, it give back 1 result.

rexxars commented 10 years ago

You've got region/city the wrong way around, but yes, region is a pretty broad term, so one could say:

{
  "city": "Dale",
  "countryCode": "no",
  "region": "Fjaler, Sogn og Fjordane"
}

Which works fine for defining where I live. It doesn't necessarily work if I want to define a place that I've worked (if I want it to be more fine-grained than the city). That would require the geocoder to know where the business is located, which OSM/GMaps doesn't necessarily know.

I just think you're losing a whole lot of flexibility when not defining the lat/lng coordinates. If I want to present my resume on my website, I'd have to write a step that transforms all the points I want to map to lat/lng coordinates first, or have a whole bunch of javascript client-side which connects to a geocoding API etc. I'd love to just be able to transform a JSON-schema into a beautiful resume with everything I need in a few lines of client-side javascript.

We obviously disagree on this issue, so I'll let my opinion be noted, and leave it at that :-)

DonDebonair commented 10 years ago

It's not a dealbreaker for me, but somehow it feels "wrong" to include geo coordinates, because it's semantically not part of a resume.

We'll let others chime in on this issue :)

ocram commented 10 years ago

@DandyDev Agree. It should not be mandatory in any case and only an optional addition to the location fields we already have. Probably we don't even need it at all.

If we added it as a required field, editing or creating the JSON resume could not be possible anymore without additional tools.

DonDebonair commented 10 years ago

I don't think anyone means geo coordinates to be mandatory. It was optional from the outset. But I'm advocating leaving it out altogether :)

priyolahiri commented 10 years ago

Having co-ordinates in the json will also allow companies to find people in a radius of let's say 500 kms without parsing it first. Isn't that reason enough?

ocram commented 10 years ago

@priyolahiri That's a reason to add it as an optional field, yes.

DonDebonair commented 10 years ago

Valid point! But is it necessary to add it to each work entry for that? Why not just add it (optionally) to the location section (of the user him/herself)? As a potential employer I'm most interested in where they live, not where they worked. Sure, you can try and determine if potential employees are willing to travel, but I think it's much more interesting to know where they actually live (geo-wise) and decide if I want to be travel costs for such a distance, and if such a distance is even acceptable for me as an employer.

priyolahiri commented 10 years ago

I think geo-coordinates were meant to be optional from the beginning.

@DandyDev For a big service company, they would certainly be interested to know where you've worked if they want to know what are the likely locations that you would like to be deployed at for client sites. Again, I am talking large IT/ITES service companies, not individual and small and medium businesses.

ocram commented 10 years ago

@DandyDev Agree that this is only useful in the location section that is about yourself. I don't think potential employers should judge your flexibility by analyzing geodata from your past positions.

DonDebonair commented 10 years ago

@priyolahiri I don't think big IT companies will go as far. And regardless, I don't think we should support this on work-entry level. For the location section it's useful.

osg commented 10 years ago

28 comments in, my impression is that this is an optional nice-to-have, therefore -1 for this feature at this time.

@priyolahiri wrote: "Having co-ordinates in the json will also allow companies to find people in a radius of let's say 500 kms without parsing it first. Isn't that reason enough?"

No. Companies are interested in hiring the right talent and relocating that talent from around the world. Also, resume writers are the primary audience rather than companies.

Q: How easy/difficult is it to defer this decision for a future version so we can get this in front of eyes quickly?

priyolahiri commented 10 years ago

It takes a lot of time to relocate talent from around the world. Ursula, you might want to do some research on how things are doing in big IT industries. You might even try researching IBM and internal allocation. People have family and commitments. Location plays an extremely big part specially in senior levels. On 12-Jul-2014 12:34 am, "Ursula Kallio" notifications@github.com wrote:

28 comments in, my impression is that this is an optional nice-to-have, therefore -1 for this feature at this time.

@priyolahiri https://github.com/priyolahiri wrote: "Having co-ordinates in the json will also allow companies to find people in a radius of let's say 500 kms without parsing it first. Isn't that reason enough?"

No. Companies are interested in hiring the right talent and relocating that talent from around the world. Also, resume writers are the primary audience rather than companies.

Q: How easy/difficult is it to defer this decision for a future version so we can get this in front of eyes quickly?

— Reply to this email directly or view it on GitHub https://github.com/jsonresume/resume-schema/issues/12#issuecomment-48770069 .

priyolahiri commented 10 years ago

'as far' - can you explain? On 11-Jul-2014 7:01 pm, "Daan Debie" notifications@github.com wrote:

@priyolahiri https://github.com/priyolahiri I don't think big IT companies will go as far. And regardless, I don't think we should support this on work-entry level. For the location section it's useful.

— Reply to this email directly or view it on GitHub https://github.com/jsonresume/resume-schema/issues/12#issuecomment-48730106 .

DonDebonair commented 10 years ago

Ursula, you might want to do some research on how things are doing in big IT industries. You might even try researching IBM and internal allocation.

Sounds a bit condescending to me :)

On-topic: your argument is still irrelevant. As @opensourcegrrrl mentioned, resume writers are the primary audience. If a company really wants to target people from a certain area, they can either manually look for resume's from people for that area (as they're doing now) or they can automate it without having the geo coordinates. GMaps is your friend in that.

-1 to include geo coordinates for now. Let's close this issue and optionally come back to it at a later time if we get a lot of requests for that.

Please vote.

osg commented 10 years ago

@priyolahiri Fear not, I spent 8-some years in the Valley.

@DandyDev Thanks for the backup. 'ppreciate it.

-1

priyolahiri commented 10 years ago

Ursula spoke with so much authority and finality on the matter, I could not help it.

Maybe this well help to explain: http://dspace.mit.edu/handle/1721.1/28686

And this: http://www.mckinsey.com/~/media/mckinsey/dotcom/client_service/Risk/Working%20papers/42_Risk-based_resource_allocation.ashx

I have a feeling that everyone is looking at this project more from a job seeker perspective but there’s a lot less deep dive on how enterprise works and how resource allocation happens. I am talking companies with workforce of > 100000

And the valley isn’t the world.

On 12-Jul-2014, at 12:51 am, Daan Debie notifications@github.com wrote:

Ursula, you might want to do some research on how things are doing in big IT industries. You might even try researching IBM and internal allocation.

Sounds a bit condescending to me :)

On-topic: your argument is still irrelevant. As @opensourcegrrrl mentioned, resume writers are the primary audience. If a company really want to target people from a certain area, they can either manually look for resume's from people for that area (as they're doing now) or they can automate it without having the geo coordinates. GMaps is your friend in that.

-1 to include geo coordinates for now. Let's close this issue and optionally come back to it at a later time if we get a lot of requests for that.

Please vote.

— Reply to this email directly or view it on GitHub.

priyolahiri commented 10 years ago

I see two primary audiences for this project: job seekers and prospective employers

Prospective employers may also want to start using this format for maintaining internal employee data to ensure uniformity across internal and external resource pools. I don’t think we are doing enough on that.

I feel we need to cover and think of all bases before we do a +1 or a -1.

You can make it super-friendly for the job seeker, and choose to make things hard and convoluted and time consuming for the employer. But I don’t see large scale adoption in that case. Look at http://www.hropenstandards.org/ to understand depth and scope.

Being great for startups and small and medium businesses solves a small part of the bigger problem.

On 12-Jul-2014, at 8:22 am, Priyadarshi Lahiri admin@priyolahiri.in wrote:

Ursula spoke with so much authority and finality on the matter, I could not help it.

Maybe this well help to explain: http://dspace.mit.edu/handle/1721.1/28686

And this: http://www.mckinsey.com/~/media/mckinsey/dotcom/client_service/Risk/Working%20papers/42_Risk-based_resource_allocation.ashx

I have a feeling that everyone is looking at this project more from a job seeker perspective but there’s a lot less deep dive on how enterprise works and how resource allocation happens. I am talking companies with workforce of > 100000

And the valley isn’t the world.

On 12-Jul-2014, at 12:51 am, Daan Debie notifications@github.com wrote:

Ursula, you might want to do some research on how things are doing in big IT industries. You might even try researching IBM and internal allocation.

Sounds a bit condescending to me :)

On-topic: your argument is still irrelevant. As @opensourcegrrrl mentioned, resume writers are the primary audience. If a company really want to target people from a certain area, they can either manually look for resume's from people for that area (as they're doing now) or they can automate it without having the geo coordinates. GMaps is your friend in that.

-1 to include geo coordinates for now. Let's close this issue and optionally come back to it at a later time if we get a lot of requests for that.

Please vote.

— Reply to this email directly or view it on GitHub.

DonDebonair commented 10 years ago

Prospective employers may also want to start using this format for maintaining internal employee data to ensure uniformity across internal and external resource pools. I don’t think we are doing enough on that.

You can make it super-friendly for the job seeker, and choose to make things hard and convoluted and time consuming for the employer. But I don’t see large scale adoption in that case.

Assumptions. Supporting this will make it a lot more convoluted for job-seekers, which for now, is the main target audience.

We already said that we will get to this at a later time. For the first draft it was proposed to leave geo-coordinates out and come back to it if and when we get a lot of requests. I'm gonna make an assumption as well: companies with workforces > 100000 are probably using LinkedIn for their searches, which has perfectly applicable tooling for that, and they will keep using that for detailed applicant searches anyways.

DonDebonair commented 10 years ago

Also:

Being great for startups and small and medium businesses solves a small part of the bigger problem.

Maybe this exposes the real problem: we haven't defined properly what problem we're trying to solve yet :)

thomasdavis commented 10 years ago

The voting right now is for what is going through in the first official release and other ideas will be revisited as the project matures. (This should be added to the documentation, I've created an issue at https://github.com/jsonresume/resume-schema/issues/94).

We've had a few smaller companies reach out and express interest in using JsonResume as an import/export format. Realistically this will be the only way the project gains traction, so we aren't too concerned about trying to cater towards corporate and large scale business for now.

Back onto the topic at hand, I won't be doing any development for the lat/long property because it affects every module in the ecosystem. There are other higher priorities development-wise so I would rather explore the topic more at a later day.

Because of the tension in the thread, I'm going to close the issue and have already added it as a link in the README. We will re-open it in the near future, once we have pushed out some of the other core changes.

And as in any good open source project, personal attacks will not be tolerated.

mboudreau commented 8 years ago

I definitely agree with having lat/lon within location, and I think @wdoekes example is probably the easiest and best way to implement it.

mboudreau commented 8 years ago

On second thought, I've been doing some work around geolocation and such, and there's a few standards that can work:

"location": { 
    "lat": 41.12,
    "lon": -71.34
  }

"location": "41.12,-71.34"

"location": [ -71.34, 41.12 ]

I like the last one, it's fairly easy to use and implement, makes sense and doesn't need 2 properties, just one. However, I'm not sure what to name the property itself. 'geo', 'geolocation', 'latlon'?

aloisdg commented 8 years ago

@mboudreau I think we should avoid to use an abbreviation. Do you have any source for a standard about geotag?

aloisdg commented 8 years ago

Also, if we can avoid the use of adresses I would love it. Addresses are jokes. Sincerely.

stp-ip commented 8 years ago

I agree latitude and longitude should be first class citizens, but try sending documents to a GPS location... Not going to get delivered most of the time. So address should still be another first class citizen.

Back to the suggestions. I like the last approach, but on a second thought having the specific fields named reduces the mental work people/devs have to do, when interacting with the standard. That shouldn't be the sole focus, but needs to be considered.

aloisdg commented 8 years ago

I think we should follow the Point schema of GeoJson:

{
    "coordinates": [125.6, 10.1]
}

It is @mboudreau last suggestion.

mboudreau commented 8 years ago

@stp-ip I agree, address is still very important for me.

I did consider the mental work needed, but the fact is, the geo location normally needs to be fed into a function or API, which often times uses this format. For example, I'm currently trying to index JSON Resume into ElasticSearch and they accept a document with the geolocation format in an array format.

I don't think the mental work is a big factor since very rarely will the dev ever need to access just one, or print off both. It's normally something that's just fed into a map or into another system like google maps, which has an API that interacts like this:

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452

Which using the format I've suggested, is a simple join if you're doing strings:

var url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + resume.basics.location.coordinates.join(',');

Or, if you're using an HTTP library, most of them has a place for params:

var request = require('https');
request({
    url: "https://maps.googleapis.com/maps/api/geocode/json",
    params: {
        latlng: resume.basics.location.coordinates.join(',')
    }
});
stp-ip commented 8 years ago

Thanks for addressing my concern. I agree and see that it might be not as bad as previously thought. Especially considering, that we might add more tooling around the standard, which might help theme devs etc. to use specific formats.

stp-ip commented 8 years ago

Proposal:

Add lat/long as coordinatesfollowing the Point schema of GeoJson. to work, school, etc.

{
    "coordinates": [125.6, 10.1]
}
aloisdg commented 8 years ago

@stp-ip I think I agree with you ;)

olivif commented 8 years ago

+1

stp-ip commented 7 years ago

Ok final decission for implementation for now.

{
    "coordinates": [125.6, 10.1]
}